package com.sale.table.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sale.system.api.domain.SysAuxiliary;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 销售订单追踪 出参
 */
@Data
@Accessors(chain = true)
public class SaleOrderTraceDto {

    /**
     * 销售订单号
     */
    private String saleOrderNo;

    /**
     * 单据状态
     */
    private String status;

    /**
     * 单据状态
     */
    private String statusDict;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料类别
     */
    private String materialCategory;

    /**
     * 物料类别
     */
    private String materialCategoryDict;

    /**
     * 规格
     */
    private String materialSpec;

    /**
     * 辅助属性
     */
    private List<SysAuxiliary> auxiliaryAttribute;

    /**
     * 单位
     */
    private String materialUnit;

    /**
     * 单位
     */
    private String unitDict;

    /**
     * 销售人员
     */
    private String saleBy;

    /**
     * 采购人员
     */
    private String saleByDict;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 计划重量
     */
    private Double plannedWeight;

    /**
     * 已出库量
     */
    private Double actualQuantity;

    /**
     * 未出库量
     */
    private Double noWareWeight;

    /**
     * 销售金额
     */
    private BigDecimal purchasePrice;

    /**
     * 未出库金额
     */
    private BigDecimal noWareWeightPrice;

    /**
     * 开票数量
     */
    private Integer invoicedQuantity;

    /**
     * 已开票金额
     */
    private BigDecimal invoicedAmount;

    /**
     * 未开票金额
     */
    private BigDecimal noInvoicedAmount;

    /**
     * 到货日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date estimatedTime;

    /**
     * 物料id
     */
    private Long materialId;

    /**
     * 租户id
     */
    private Long tenantId;

    /**
     * 单价
     */
    private String unitPrice;


}
